//
//  ReactionComputer.h
//  MacHeliosSim
//
//  Created by Paul Thompson on 8/11/10.
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//

/*	ReactionComputer class takes the needed input (Nuclide data file, Beam isotope & energy,
 *	target isotope, ejectile isotope) and computes the product of a nuclear exchange reaction.
 */

#import <Cocoa/Cocoa.h>
#import "NuclideTable.h"
#import "Nuclide.h"

@interface Reaction : NSObject {
	
	Nuclide *beamNuclide, *targetNuclide, *ejectileNuclide, *productNuclide;
	NuclideTable *currentTable;
	float qValue, beamEnergy;
}
@property(readwrite,copy) Nuclide *beamNuclide, *targetNuclide, *ejectileNuclide, *productNuclide;
@property(readwrite,copy) NuclideTable *currentTable;
@property(readwrite) float qValue, beamEnergy;

-(id)initWithBeamEnergy:(float)energy
			   AndNuclide:(Nuclide *)beam
		   TargetNuclide:(Nuclide *)target
		 EjectileNuclide:(Nuclide *)ejectile
		 AndNuclideTable:(NuclideTable *)theTable;

-(id)initWithBeamEnergy:(float)theBeamEnergy
			AndBeamMass:(int)theBeamMass
		  AndBeamSymbol:(NSString *)theBeamSymbol
		  AndTargetMass:(int)theTargetMass
		AndTargetSymbol:(NSString *)theTargetSymbol
		AndEjectileMass:(int)theEjectileMass
	  AndEjectileSymbol:(NSString *)theEjectileSymbol
		AndNuclideTable:(NuclideTable *)theTable;

//  This method really isn't needed at this time, I think.
-(id)calculateReaction;

-(float)calcQValue;

@end
 